{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LangChain data chunking example\n",
    "\n",
    "This notebook uses Langchain's recursive character text splitter to chunk text. Source files are large PDFs loaded using PyPDFLoader.\n",
    "\n",
    "The notebook complements the [Chunking large documents for vector search solutions](https://learn.microsoft.com/azure/search/vector-search-how-to-chunk-document) article in the Azure AI Search documentation.\n",
    "\n",
    "### Set up a Python virtual environment in Visual Studio Code\n",
    "\n",
    "1. Open the Command Palette (Ctrl+Shift+P).\n",
    "1. Search for **Python: Create Environment**.\n",
    "1. Select **Venv**.\n",
    "1. Select a Python interpreter. Choose 3.10 or later.\n",
    "\n",
    "It can take a minute to set up. If you run into problems, see [Python environments in VS Code](https://code.visualstudio.com/docs/python/environments)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Install packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%pip install --quiet -r requirements.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load .env file (Copy .env-sample to .env and update accordingly)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from dotenv import load_dotenv\n",
    "from azure.identity import DefaultAzureCredential\n",
    "from azure.core.credentials import AzureKeyCredential\n",
    "import os\n",
    "\n",
    "load_dotenv() # take environment variables from .env.\n",
    "\n",
    "# Variables not used here do not need to be updated in your .env file\n",
    "search_endpoint = os.environ[\"AZURE_SEARCH_SERVICE_ENDPOINT\"]\n",
    "azure_openai_endpoint = os.environ[\"AZURE_OPENAI_ENDPOINT\"]\n",
    "azure_openai_embedding_deployment_id = os.environ[\"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_ID\"]\n",
    "recursivetextsplitter_searchindex = os.environ[\"AZURE_SEARCH_LANGCHAIN_RECURSIVETEXTSPLITTER_INDEX\"]\n",
    "\n",
    "search_credential = AzureKeyCredential(os.environ[\"AZURE_SEARCH_ADMIN_KEY\"]) if len(os.environ[\"AZURE_SEARCH_ADMIN_KEY\"]) > 0 else DefaultAzureCredential()\n",
    "azure_openai_key = os.environ[\"AZURE_OPENAI_KEY\"] if len(os.environ[\"AZURE_OPENAI_KEY\"]) > 0 else None"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Setup sample resources for embedding chunks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from openai import AzureOpenAI\n",
    "from azure.identity import get_bearer_token_provider\n",
    "\n",
    "azure_openai_client = None\n",
    "if azure_openai_key:\n",
    "    azure_openai_client = AzureOpenAI(\n",
    "        api_key=azure_openai_key, \n",
    "        api_version=\"2023-05-15\",\n",
    "        azure_deployment=azure_openai_embedding_deployment_id,\n",
    "        azure_endpoint=azure_openai_endpoint)\n",
    "else:\n",
    "    azure_openai_client = AzureOpenAI(\n",
    "        azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), \"https://cognitiveservices.azure.com/.default\"),\n",
    "        api_version=\"2023-05-15\",\n",
    "        azure_deployment=azure_openai_embedding_deployment_id,\n",
    "        azure_endpoint=azure_openai_endpoint)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Setup sample resources for recursive text splitter chunking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Created recursive text splitter index\n"
     ]
    }
   ],
   "source": [
    "from azure.search.documents.indexes import SearchIndexClient\n",
    "from lib.common import (\n",
    "    create_search_index,\n",
    ")\n",
    "\n",
    "search_index_client = SearchIndexClient(endpoint=search_endpoint, credential=search_credential)\n",
    "rts_searchindex = create_search_index(\n",
    "    recursivetextsplitter_searchindex,\n",
    "    azure_openai_endpoint,\n",
    "    azure_openai_embedding_deployment_id,\n",
    "    azure_openai_key\n",
    ")\n",
    "search_index_client.create_or_update_index(rts_searchindex)\n",
    "\n",
    "print(\"Created recursive text splitter index\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load PDF"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_community.document_loaders import PyPDFLoader\n",
    "import os\n",
    "\n",
    "loader = PyPDFLoader(os.path.join(\"..\", \"..\", \"..\", \"data\", \"nasa-ebooks\", \"earth_at_night_508.pdf\"))\n",
    "pages = loader.load()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Generate histogram of token and character lengths per page"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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l+mafCAq/0oCp5CRsGzU9DFrV6701lX8HfcVEhISpO/UIiIiorpTUFAALy+vWn21kC5MPhCVf0xm2agprL3b1KgPM8v735NjZ2cHBwcHvdVGREREj1Zf0104qZqIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkz2gC0WeffQaFQoHx48dLbcXFxYiMjISLiwvs7OwQHh6OmzdvGq5IIiIiMklGEYiOHz+Or7/+GoGBgVrtEyZMwM6dO7Fx40YkJCTg+vXr6N+/v4GqJCIiIlNl8EBUWFiIQYMG4ZtvvkHDhg2l9vz8fCxfvhxz587Fiy++iPbt22PFihX49ddfcfToUQNWTERERKbG4IEoMjISffr0QWhoqFZ7UlISSktLtdpbtGgBb29vJCYm1neZREREZMLMDbnz9evX4/fff8fx48crLMvKyoKlpSWcnJy02t3d3ZGVlVVln2q1Gmq1WnpeUFCgt3qJiIjINBnsDNGVK1fw3nvvYe3atbCystJbvzExMXB0dJQeXl5eeuubiIiITJPBAlFSUhKys7PRrl07mJubw9zcHAkJCVi4cCHMzc3h7u6OkpIS5OXlaW138+ZNqFSqKvuNiopCfn6+9Lhy5UodHwkRERE96Qz2kVlISAhOnz6t1TZs2DC0aNECU6ZMgZeXFywsLBAfH4/w8HAAQGpqKjIzMxEcHFxlv0qlEkqlsk5rJyIiItNisEBkb2+PNm3aaLXZ2trCxcVFah8+fDgmTpwIZ2dnODg4YOzYsQgODsbzzz9viJKJiIjIRBl0UvXjzJs3D2ZmZggPD4darUZYWBgWL15s6LKIiIjIxBhVIDp06JDWcysrK8TGxiI2NtYwBREREZEsGPw+RERERESGxkBEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLJn0EC0ZMkSBAYGwsHBAQ4ODggODsbu3bul5d26dYNCodB6jBo1yoAVExERkSkyN+TOPT098dlnn6F58+YQQuC7775Dv379cPLkSbRu3RoAMGLECMycOVPaxsbGxlDlEhERkYkyaCB6+eWXtZ7Pnj0bS5YswdGjR6VAZGNjA5VKZYjyiIiISCaMZg5RWVkZ1q9fj6KiIgQHB0vta9euhaurK9q0aYOoqCjcuXPHgFUSERGRKTLoGSIAOH36NIKDg1FcXAw7Ozts3boVrVq1AgC8+eab8PHxgYeHB06dOoUpU6YgNTUVW7ZsqbI/tVoNtVotPS8oKKjzYyAiIqInm8EDUUBAAJKTk5Gfn49NmzYhIiICCQkJaNWqFUaOHCmt17ZtWzRu3BghISFIT09Hs2bNKu0vJiYG0dHR9VU+ERERmQCDf2RmaWkJf39/tG/fHjExMQgKCsKCBQsqXbdDhw4AgLS0tCr7i4qKQn5+vvS4cuVKndRNREREpsPgZ4geptFotD7yelBycjIAoHHjxlVur1QqoVQq66I0IiIiMlEGDURRUVHo1asXvL29cfv2baxbtw6HDh1CXFwc0tPTsW7dOvTu3RsuLi44deoUJkyYgC5duiAwMNCQZRMREZGJMWggys7OxltvvYUbN27A0dERgYGBiIuLQ48ePXDlyhXs378f8+fPR1FREby8vBAeHo5PPvnEkCUTERGRCTJoIFq+fHmVy7y8vJCQkFCP1RAREZFcGXxSNREREZGhMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewZNBAtWbIEgYGBcHBwgIODA4KDg7F7925peXFxMSIjI+Hi4gI7OzuEh4fj5s2bBqyYiIiITJFBA5Gnpyc+++wzJCUl4cSJE3jxxRfRr18/nD17FgAwYcIE7Ny5Exs3bkRCQgKuX7+O/v37G7JkIiIiMkHmhtz5yy+/rPV89uzZWLJkCY4ePQpPT08sX74c69atw4svvggAWLFiBVq2bImjR4/i+eefN0TJREREZIKMZg5RWVkZ1q9fj6KiIgQHByMpKQmlpaUIDQ2V1mnRogW8vb2RmJhowEqJiIjI1Bj0DBEAnD59GsHBwSguLoadnR22bt2KVq1aITk5GZaWlnByctJa393dHVlZWVX2p1aroVarpecFBQV1VToRERGZCIOfIQoICEBycjKOHTuG0aNHIyIiAufOnatxfzExMXB0dJQeXl5eeqyWiIiITJHBA5GlpSX8/f3Rvn17xMTEICgoCAsWLIBKpUJJSQny8vK01r958yZUKlWV/UVFRSE/P196XLlypY6PgIiIiJ50Bg9ED9NoNFCr1Wjfvj0sLCwQHx8vLUtNTUVmZiaCg4Or3F6pVEqX8Zc/iIiIiB7FoHOIoqKi0KtXL3h7e+P27dtYt24dDh06hLi4ODg6OmL48OGYOHEinJ2d4eDggLFjxyI4OJhXmBEREZFeGTQQZWdn46233sKNGzfg6OiIwMBAxMXFoUePHgCAefPmwczMDOHh4VCr1QgLC8PixYsNWTIRERGZIIMGouXLlz9yuZWVFWJjYxEbG1tPFREREZEcGd0cIiIiIqL6xkBEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLJn0EAUExODZ599Fvb29mjUqBFeffVVpKamaq3TrVs3KBQKrceoUaMMVDERERGZIoMGooSEBERGRuLo0aPYt28fSktL8dJLL6GoqEhrvREjRuDGjRvS4/PPPzdQxURERGSKzA258z179mg9X7lyJRo1aoSkpCR06dJFarexsYFKparv8oiIiEgmdD5D1LRpU+Tm5lZoz8vLQ9OmTWtVTH5+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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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8XVZjrJly2rt2rVKTExU165ddenSJcXExCg6OloPP/ywVq9erYMHD+rbb7/Viy++qG3btrls3K7neC/3z3/+U4mJiRoyZIh+/vlnffLJJ5o1a5YkOca2UqVKSktLU3x8vE6dOqULFy647BgA5A2BCLCAevXqady4cXrjjTdUu3ZtzZs3T2PGjHFap2nTppo+fbrGjRunevXqaeXKlRo4cKDTV0OxsbFatmyZVq9erYYNG+quu+7S+PHjFRkZedV99+7dW1FRUbrzzjtVpkwZbdq0Sf7+/lq1apXOnDmjhg0b6tFHH1WrVq00efLkK/YRFhamtWvXaufOnerWrZvsdruWL1+ue+65R7169dLf/vY3denSRYcOHcoVqG7E9Rzv5SpXrqyFCxdq0aJFqlu3rqZNm6YXX3xR0h8/kyBJTZo00TPPPKPOnTurTJkyevPNN112DADyxmaMMe4uAkDh1Lt3byUmJurrr792dylFyujRozV9+nQdOXLE3aUA+P+YQwTA4b///a/uu+8+BQQEaMWKFfrwww81depUd5d1y5s6daoaNmyokJAQbdq0SW+99Zb69u3r7rIA/AmBCIDDd999pzfffFPnz59XlSpVNHHiRD311FPuLuuWt3fvXr366qs6c+aMIiIiNHjwYG6nAhQyfGUGAAAsj0nVAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8ghEAADA8v4fz/jAlqVEiNAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from lib.common import plot_chunk_histogram, get_token_length\n",
    "\n",
    "page_content = [page.page_content for page in pages]\n",
    "\n",
    "plot_chunk_histogram(\n",
    "    chunks=page_content,\n",
    "    length_fn=len,\n",
    "    title=\"Distribution of page character lengths\",\n",
    "    xlabel=\"Page character length\",\n",
    "    ylabel=\"Page count\")\n",
    "plot_chunk_histogram(\n",
    "    chunks=page_content,\n",
    "    length_fn=get_token_length,\n",
    "    title=\"Distribution of page token lengths\",\n",
    "    xlabel=\"Page token length\",\n",
    "    ylabel=\"Page count\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Chunk PDF using Recursive text splitter\n",
    "\n",
    "We use the output of the above historgrams to guide us into selecting a 600 token chunk length with a 150 token overlap."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
    "from lib.common import get_encoding_name\n",
    "\n",
    "# from_tiktoken_encoder enables use to split on tokens rather than characters\n",
    "recursive_text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(\n",
    "   encoding_name=get_encoding_name(),\n",
    "   chunk_size=600, \n",
    "   chunk_overlap=125\n",
    ")\n",
    "\n",
    "recursive_text_splitter_chunks = recursive_text_splitter.split_documents(pages)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Generate histogram of chunk character and token lengths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGbUlEQVR4nO39eVzU9f7//98HlQFEcQFZFBD3fcnUTFNLEq3cO6VluaXneDRzycys3E5H362WmZ3POae01DbXjqblimVqaS5ZSoIaaS6hAuKCCs/fH/2YryOgjAwM8LpdL5e5XHy9Xs95vh7zZAbuvub1ej1txhgjAAAAC/PydAEAAACeRiACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyACAACWRyBCoZoyZYpsNluh7Ktjx47q2LGjY3nTpk2y2WxavHhxoex/4MCBql69eqHs61alpaXpiSeeUEhIiGw2m0aPHp2v/qpXr64HHnjAPcW5aN68ebLZbNqxY0eB9F/Y75/irjA/6/nBzxVZCES4ZVl/gLIePj4+CgsLU0xMjN566y2dO3fOLfv5/fffNWXKFO3evdst/blTUa4tL/75z39q3rx5Gj58uD788EM99thjni4JBeDbb7/VlClTlJyc7OlSPGbRokWaNWuWp8tAEUYgQr5NmzZNH374oebOnasnn3xSkjR69Gg1btxYe/fudWr7/PPP6+LFiy71//vvv2vq1Kkuh46vvvpKX331lUvPcdWNavv3v/+tuLi4At1/fm3YsEF33HGHJk+erP79+6tFixaeLgkF4Ntvv9XUqVMJRAQi3EBpTxeA4q9r1666/fbbHcsTJ07Uhg0b9MADD6h79+7av3+/fH19JUmlS5dW6dIF+7a7cOGC/Pz85O3tXaD7uZkyZcp4dP95cerUKTVo0MDTZeAa58+fV9myZT1dRp5kfdaAkoAjRCgQ99xzj1544QX9+uuvWrBggWN9TucVrF27Vu3atVOFChXk7++vunXr6rnnnpP05/f7LVu2lCQNGjTI8fXcvHnzJP15nlCjRo20c+dOtW/fXn5+fo7nXn8OUZaMjAw999xzCgkJUdmyZdW9e3f99ttvTm2qV6+ugQMHZnvutX3erLacziE6f/68xo0bp/DwcNntdtWtW1evvvqqjDFO7Ww2m0aOHKnly5erUaNGstvtatiwodasWZPzgF/n1KlTGjJkiIKDg+Xj46OmTZtq/vz5ju1Z500cPnxYq1atctR+5MiRG/a7YMECtWrVSn5+fqpYsaLat2+f41G4b775Rq1atZKPj49q1KihDz74wGl7bueXZH0Ne20dWecl3azPnJw9e1atWrVStWrVbnq0Ljk5WWPGjFH16tVlt9tVrVo1Pf7440pKSnJql5mZqZdeeknVqlWTj4+POnXqpPj4eKc2X3/9tf7yl78oIiJCdrtd4eHhGjNmTLajowMHDpS/v78SEhJ03333qVy5cnr00Udd6kOSDhw4oIceekhBQUHy9fVV3bp1NWnSJEl/jvX48eMlSVFRUTn+rBcsWKAWLVrI19dXlSpVUt++fbN9Jm70WXOFK/v6+eefdffdd8vPz09Vq1bVyy+/nK2/X3/9Vd27d1fZsmVVpUoVjRkzRl9++aVsNps2bdrk6G/VqlX69ddfHa//+s9mXn6uBw8eVJ8+fRQSEiIfHx9Vq1ZNffv2VUpKisvjgKKHI0QoMI899piee+45ffXVVxo6dGiObX766Sc98MADatKkiaZNmya73a74+Hht2bJFklS/fn1NmzZNL774ooYNG6a77rpLknTnnXc6+jh9+rS6du2qvn37qn///goODr5hXS+99JJsNpsmTJigU6dOadasWYqOjtbu3bsdR7LyIi+1XcsYo+7du2vjxo0aMmSImjVrpi+//FLjx4/XsWPH9MYbbzi1/+abb7R06VL9/e9/V7ly5fTWW2+pT58+SkxMVOXKlXOt6+LFi+rYsaPi4+M1cuRIRUVF6bPPPtPAgQOVnJysp556SvXr19eHH36oMWPGqFq1aho3bpwkKSgoKNd+p06dqilTpujOO+/UtGnT5O3tre3bt2vDhg3q3Lmzo118fLwefPBBDRkyRAMGDNB7772ngQMHqkWLFmrYsGGex/dat9JnUlKS7r33Xp05c0axsbGqWbNmrv2npaXprrvu0v79+zV48GDddtttSkpK0ueff66jR48qMDDQ0XbmzJny8vLS008/rZSUFL388st69NFHtX37dkebzz77TBcuXNDw4cNVuXJlfffdd5o9e7aOHj2qzz77zGnfV69eVUxMjNq1a6dXX33VccQlr33s3btXd911l8qUKaNhw4apevXqSkhI0P/+9z+99NJL6t27t375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ohyXEefkzJkz2dZl/cFNT0+XJMc9Wdx1U7kPPvjA6bymxYsX6/jx444rV6Q/f3lv27ZNly9fdqxbuXJltsuDXantvvvuU0ZGht5++22n9W+88YZsNpvT/vPjvvvu04kTJ/TJJ5841l29elWzZ8+Wv7+/42sXV/Ts2VNeXl6aNm1atqMTt/I/9qxzozZv3uxYd/78eadbA+THCy+8oKeffloTJ07U3Llzb9q+T58+2rNnj5YtW5Ztm6uvL+tIw7XPM8bozTffdHsfQUFBat++vd577z0lJibmWndu79PevXurVKlSmjp1arbXaYzR6dOn81zzzRTEvmJiYnTs2DF9/vnnjnWXLl3Sv//972xty5Ytm6+vt1JTU3X16lWndY0bN5aXl5fjdxWKN44QId9Wr16tAwcO6OrVqzp58qQ2bNigtWvXKjIyUp9//rl8fHxyfe60adO0efNm3X///YqMjNSpU6f0zjvvqFq1amrXrp2kP/94VqhQQe+++67KlSunsmXLqnXr1oqKirqleitVqqR27dpp0KBBOnnypGbNmqVatWo5nYj5xBNPaPHixerSpYseeughJSQkaMGCBdku3Xaltm7duunuu+/WpEmTdOTIETVt2lRfffWVVqxYodGjR9/wsnBXDBs2TP/61780cOBA7dy5U9WrV9fixYu1ZcsWzZo164bndOWmVq1amjRpkqZPn6677rpLvXv3lt1u1/fff6+wsDCXv5rq3LmzIiIiNGTIEI0fP16lSpXSe++9p6CgoGx/2G/VK6+8opSUFI0YMULlypVzOkH3euPHj9fixYv1l7/8RYMHD1aLFi105swZff7553r33XfVtGnTPO+3Xr16qlmzpp5++mkdO3ZM5cuX15IlS1w6h8qVPt566y21a9dOt912m4YNG6aoqCgdOXJEq1atctxBPesO5JMmTVLfvn1VpkwZdevWTTVr1tQ//vEPTZw4UUeOHFHPnj1Vrlw5HT58WMuWLdOwYcP09NNP57nuGymIff31r3/V22+/rX79+umpp55SaGioFi5c6Pidc+1RoRYtWuiTTz7R2LFj1bJlS/n7+6tbt2553teGDRs0cuRI/eUvf1GdOnV09epVffjhhypVqpT69OnjUt0oogrrcjaUPFmXOWc9vL29TUhIiLn33nvNm2++6XR5d5brL8Vdv3696dGjhwkLCzPe3t4mLCzM9OvXz/zyyy9Oz1uxYoVp0KCBKV26tNNl7h06dDANGzbMsb7cLrv/6KOPzMSJE02VKlWMr6+vuf/++7NdsmzMn5f0Vq1a1djtdtO2bVuzY8eObH3eqLbrL7s3xphz586ZMWPGmLCwMFOmTBlTu3Zt88orrzhdIm3Mn5fdjxgxIltNud0O4HonT540gwYNMoGBgcbb29s0btw4x1sD5PWy+yzvvfeead68ubHb7aZixYqmQ4cOZu3atTftL6dx27lzp2ndurXx9vY2ERER5vXXX8/1svu89JnTbSAyMjJMv379TOnSpZ0uzc7J6dOnzciRI03VqlWNt7e3qVatmhkwYIBJSkoyxvx/75/rL7s+fPhwtlsv/PzzzyY6Otr4+/ubwMBAM3ToUMdtE65tN2DAAFO2bNkc68lrH8YYs2/fPtOrVy9ToUIF4+PjY+rWrWteeOEFpzbTp083VatWNV5eXtnGeMmSJaZdu3ambNmypmzZsqZevXpmxIgRJi4uztHmRp+1nOR2a4X87Cunz9ShQ4fM/fffb3x9fU1QUJAZN26cWbJkiZFktm3b5miXlpZmHnnkEVOhQgUjydFPXn+uhw4dMoMHDzY1a9Y0Pj4+plKlSubuu+8269aty/OYoGizGVPEz9AEAMAFs2bN0pgxY3T06NE8X2kIEIgAAMXWxYsXna5+u3Tpkpo3b66MjAz98ssvHqwMxQ3nEAEAiq3evXsrIiJCzZo1U0pKihYsWKADBw5o4cKFni4NxQyBCABQbMXExOg///mPFi5cqIyMDDVo0EAff/yxHn74YU+XhmKGr8wAAIDlcR8iAABgeQQiAABgeSX+HKLMzEz9/vvvKleunNungAAAAAXDGKNz584pLCws23x/BaHEB6Lff/9d4eHhni4DAADcgt9++61QJs8t8YEoa5qCCp2GybtKjZu0vrErZ47q7JdvKzY21i0TXAIAgJylpqYqPDz8lqYbuhUlPhBlfU3mXaWGfCMa5asvL+8/58fx9/dX+fLl810bAAC4scI63YWTqgEAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOURiAAAgOV5NBDNmDFDLVu2VLly5VSlShX17NlTcXFxTm06duwom83m9Pjb3/7moYoBAEBJ5NFAFBsbqxEjRmjbtm1au3atrly5os6dO+v8+fNO7YYOHarjx487Hi+//LKHKgYAACVRaU/ufM2aNU7L8+bNU5UqVbRz5061b9/esd7Pz08hISGFXR4AALCIInUOUUpKiiSpUqVKTusXLlyowMBANWrUSBMnTtSFCxdy7SM9PV2pqalODwAAgBvx6BGia2VmZmr06NFq27atGjVq5Fj/yCOPKDIyUmFhYdq7d68mTJiguLg4LV26NMd+ZsyYoalTpxZW2QAAoAQoMoFoxIgR2rdvn7755hun9cOGDXP8u3HjxgoNDVWnTp2UkJCgmjVrZutn4sSJGjt2rGM5NTVV4eHhBVc4AAAo9opEIBo5cqRWrlypzZs3q1q1ajds27p1a0lSfHx8joHIbrfLbrcXSJ0AAKBk8mggMsboySef1LJly7Rp0yZFRUXd9Dm7d++WJIWGhhZwdQAAwCo8GohGjBihRYsWacWKFSpXrpxOnDghSQoICJCvr68SEhK0aNEi3XfffapcubL27t2rMWPGqH379mrSpIknSwcAACWIRwPR3LlzJf1588Vrvf/++xo4cKC8vb21bt06zZo1S+fPn1d4eLj69Omj559/3gPVAgCAksrjX5ndSHh4uGJjYwupGgAAYFVF6j5EAAAAnkAgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlkcgAgAAlufRQDRjxgy1bNlS5cqVU5UqVdSzZ0/FxcU5tbl06ZJGjBihypUry9/fX3369NHJkyc9VDEAACiJPBqIYmNjNWLECG3btk1r167VlStX1LlzZ50/f97RZsyYMfrf//6nzz77TLGxsfr999/Vu3dvD1YNAABKmtKe3PmaNWuclufNm6cqVapo586dat++vVJSUvTf//5XixYt0j333CNJev/991W/fn1t27ZNd9xxhyfKBgAAJYxHA9H1UlJSJEmVKlWSJO3cuVNXrlxRdHS0o029evUUERGhrVu35hiI0tPTlZ6e7lhOTU11e5379+/Pdx+BgYGKiIhwQzUlX2JiopKSkvLdD2MOAMhNkQlEmZmZGj16tNq2batGjRpJkk6cOCFvb29VqFDBqW1wcLBOnDiRYz8zZszQ1KlTC6TGjLSzks2m/v3757svH18/xR3Yzx/om0hMTFTdevV16eKFfPfFmAMAclNkAtGIESO0b98+ffPNN/nqZ+LEiRo7dqxjOTU1VeHh4fktT5KUmZ4mGaPKD4xTmcq33ueV07/p9MrXlJSUxB/nm0hKStKlixcYcwBAgSoSgWjkyJFauXKlNm/erGrVqjnWh4SE6PLly0pOTnY6SnTy5EmFhITk2Jfdbpfdbi/QestUDpc9pFaB7gPOGHMAQEHy6FVmxhiNHDlSy5Yt04YNGxQVFeW0vUWLFipTpozWr1/vWBcXF6fExES1adOmsMsFAAAllEePEI0YMUKLFi3SihUrVK5cOcd5QQEBAfL19VVAQICGDBmisWPHqlKlSipfvryefPJJtWnThivMAACA23g0EM2dO1eS1LFjR6f177//vgYOHChJeuONN+Tl5aU+ffooPT1dMTExeueddwq5UgAAUJJ5NBAZY27axsfHR3PmzNGcOXMKoSIAAGBFzGUGAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsj0AEAAAsz+VA9MEHHyg9PT3b+suXL+uDDz5wS1EAAACFyeVANGjQIKWkpGRbf+7cOQ0aNMgtRQEAABQmlwORMUY2my3b+qNHjyogIMAtRQEAABSm0nlt2Lx5c9lsNtlsNnXq1EmlS/9/T83IyNDhw4fVpUuXAikSAACgIOU5EPXs2VOStHv3bsXExMjf39+xzdvbW9WrV1efPn3cXiAAAEBBy3Mgmjx5siSpevXqevjhh+Xj41NgRQEAABSmPAeiLAMGDJD051Vlp06dUmZmptP2iIgI91QGAABQSFwORAcPHtTgwYP17bffOq3POtk6IyPDbcUBAAAUBpcD0cCBA1W6dGmtXLlSoaGhOV5xBgAAUJy4HIh2796tnTt3ql69egVRDwAAQKFz+T5EDRo0UFJSUkHUAgAA4BEuHyH6v//7Pz3zzDP65z//qcaNG6tMmTJO28uXL++24lC4EhMT3RZ2AwMDOcEeAFBsuByIoqOjJUmdOnVyWs9J1cVbYmKi6tarr0sXL7ilPx9fP8Ud2E8oAgAUCy4Hoo0bNxZEHfCwpKQkXbp4QZUfGKcylcPz1deV07/p9MrXlJSURCACABQLLgeiDh06FEQdKCLKVA6XPaSWp8sAAKBQuRyINm/efMPt7du3v+ViAAAAPMHlQNSxY8ds6669FxHnEAEAgOLG5cvuz5496/Q4deqU1qxZo5YtW+qrr74qiBoBAAAKlMtHiAICArKtu/fee+Xt7a2xY8dq586dbikMAACgsLh8hCg3wcHBiouLc1d3AAAAhcblI0R79+51WjbG6Pjx45o5c6aaNWvmrroAAAAKjcuBqFmzZrLZbDLGOK2/44479N5777mtMAAAgMLiciA6fPiw07KXl5eCgoLk4+PjtqIAAAAKk8uBKDIysiDqAAAA8JhbOqk6NjZW3bp1U61atVSrVi11795dX3/9tbtrAwAAKBQuB6IFCxYoOjpafn5+GjVqlEaNGiVfX1916tRJixYtKogaAQAACpTLX5m99NJLevnllzVmzBjHulGjRun111/X9OnT9cgjj7i1QAAAgILm8hGiQ4cOqVu3btnWd+/ePdsJ1wAAAMWBy4EoPDxc69evz7Z+3bp1Cg8Pd0tRAAAAhcnlr8zGjRunUaNGaffu3brzzjslSVu2bNG8efP05ptvur1AAACAguZyIBo+fLhCQkL02muv6dNPP5Uk1a9fX5988ol69Ojh9gIBAAAKmsuBSJJ69eqlXr16ubsWAAAAj8jzOURnz57V7NmzlZqamm1bSkpKrtsAAACKujwHorffflubN29W+fLls20LCAjQ119/rdmzZ7u0882bN6tbt24KCwuTzWbT8uXLnbYPHDhQNpvN6dGlSxeX9gEAAHAzeQ5ES5Ys0d/+9rdct//1r3/V4sWLXdr5+fPn1bRpU82ZMyfXNl26dNHx48cdj48++silfQAAANxMns8hSkhIUO3atXPdXrt2bSUkJLi0865du6pr1643bGO32xUSEuJSvwAAAK7I8xGiUqVK6ffff891+++//y4vr1uaGu2GNm3apCpVqqhu3boaPny4Tp8+7fZ9AAAAa8vzEaLmzZtr+fLluuOOO3LcvmzZMjVv3txthUl/fl3Wu3dvRUVFKSEhQc8995y6du2qrVu3qlSpUjk+Jz09Xenp6Y5lTvTGtfbv3++WfgIDAxUREeGWvgAAnpfnQDRy5Ej17dtX1apV0/Dhwx2BJCMjQ++8847eeOMNt0/u2rdvX8e/GzdurCZNmqhmzZratGmTOnXqlONzZsyYoalTp7q1DhR/GWlnJZtN/fv3d0t/Pr5+ijuwn1AEACVEngNRnz599Mwzz2jUqFGaNGmSatSoIenPuc3S0tI0fvx4PfjggwVWqCTVqFFDgYGBio+PzzUQTZw4UWPHjnUsp6amMqUIlJmeJhmjyg+MU5nK+Xs/XDn9m06vfE1JSUkEIgAoIVy6MeNLL72kHj16aOHChYqPj5cxRh06dNAjjzyiVq1aFVSNDkePHtXp06cVGhqaaxu73S673V7gtaB4KlM5XPaQWp4uAwBQxLh8p+pWrVq5LfykpaUpPj7esXz48GHt3r1blSpVUqVKlTR16lT16dNHISEhSkhI0DPPPKNatWopJibGLfsHAACQbnHqDnfZsWOH7r77bsdy1lddAwYM0Ny5c7V3717Nnz9fycnJCgsLU+fOnTV9+nSOAAEAALfyaCDq2LGjjDG5bv/yyy8LsRoAAGBV7r9xEAAAQDFDIAIAAJbnciC60Vxi48ePz1cxAAAAnuByIBo+fLhWr16dbf2YMWO0YMECtxQFAABQmFwORAsXLlS/fv30zTffONY9+eST+vTTT7Vx40a3FgcAAFAYXL7K7P7779c777yj7t27a+3atfrvf/+rFStWaOPGjapTp05B1IibSExMVFJSUr76cNccXwAAFEe3dNn9I488ouTkZLVt21ZBQUGKjY1VrVrc/dcTEhMTVbdefV26eMHTpQAAUGzlKRBdOzfYtYKCgnTbbbfpnXfecax7/fXX3VMZ8iQpKUmXLl7I9xxdFw/tUMrXnAMGALCmPAWiXbt25bi+Vq1aSk1NdWy32Wzuqwwuye8cXVdO/+bGagAAKF7yFIg4WRoAAJRk3JgRAABYnssnVZ8/f14zZ87U+vXrderUKWVmZjptP3TokNuKAwAAKAwuB6InnnhCsbGxeuyxxxQaGsp5QwAAoNhzORCtXr1aq1atUtu2bQuiHgAAgELn8jlEFStWVKVKlQqiFgAAAI9wORBNnz5dL774oi5c4EaAAACgZHD5K7PXXntNCQkJCg4OVvXq1VWmTBmn7T/88IPbigMAACgMLgeinj17FkAZAAAAnuNyIJo8eXJB1IESyB0TxjLpLACgMNzS5K7AjWSknZVsNvXv39/TpQAAkCcuByIvL68b3nsoIyMjXwWh+MtMT5OMyfeEsxKTzgIACofLgWjZsmVOy1euXNGuXbs0f/58TZ061W2FofjL74SzEpPOAgAKh8uBqEePHtnWPfjgg2rYsKE++eQTDRkyxC2FAQAAFBa3Te56xx13aP369e7qDgAAoNC4JRBdvHhRb731lqpWreqO7gAAAAqVy1+ZVaxY0emkamOMzp07Jz8/Py1YwMmvAACg+HE5EM2aNctp2cvLS0FBQWrdurUqVqzorroAAAAKjcuBaMCAAQVRBwAAgMfc0o0Zk5OT9d133+nUqVPKzMx02vb444+7pTAAAIDC4nIg+t///qdHH31UaWlpKl++vNP5RDabjUAEAACKHZevMhs3bpwGDx6stLQ0JScn6+zZs47HmTNnCqJGAACAAuVyIDp27JhGjRolPz+/gqgHAACg0LkciGJiYrRjx46CqAUAAMAj8nQO0eeff+749/3336/x48fr559/VuPGjVWmTBmntt27d3dvhQAAAAUsT4GoZ8+e2dZNmzYt2zqbzcZs9wAAoNjJUyC6/tJ6AACAksRtk7sCAAAUV3kORBs2bFCDBg2UmpqabVtKSooaNmyozZs3u7U4AACAwpDnQDRr1iwNHTpU5cuXz7YtICBAf/3rX/XGG2+4tTgAAIDCkOdAtGfPHnXp0iXX7Z07d9bOnTvdUhQAAEBhynMgOnnyZLZL7K9VunRp/fHHH24pCgAAoDDlORBVrVpV+/bty3X73r17FRoa6paiAAAAClOeA9F9992nF154QZcuXcq27eLFi5o8ebIeeOABtxYHAABQGPI82/3zzz+vpUuXqk6dOho5cqTq1q0rSTpw4IDmzJmjjIwMTZo0qcAKBQAAKCh5DkTBwcH69ttvNXz4cE2cOFHGGEl/3p06JiZGc+bMUXBwcIEVCgAAUFDyHIgkKTIyUl988YXOnj2r+Ph4GWNUu3ZtVaxYsaDqAwAAKHAuBaIsFStWVMuWLd1dCwAAgEcwdQcAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8jwaizZs3q1u3bgoLC5PNZtPy5cudthtj9OKLLyo0NFS+vr6Kjo7WwYMHPVMsAAAosTwaiM6fP6+mTZtqzpw5OW5/+eWX9dZbb+ndd9/V9u3bVbZsWcXExOQ4nxoAAMCtuqUbM7pL165d1bVr1xy3GWM0a9YsPf/88+rRo4ck6YMPPlBwcLCWL1+uvn37FmapAACgBPNoILqRw4cP68SJE4qOjnasCwgIUOvWrbV169ZcA1F6errS09Mdy6mpqQVeK1CSJCYmKikpyS19BQYGKiIiwi19AUBBKrKB6MSJE5KUbcLY4OBgx7aczJgxQ1OnTi3Q2oCSKjExUXXr1delixfc0p+Pr5/iDuwnFAEo8opsILpVEydO1NixYx3LqampCg8P92BFQPGRlJSkSxcvqPID41Smcv4+N1dO/6bTK19TUlISgQhAkVdkA1FISIgk6eTJkwoNDXWsP3nypJo1a5br8+x2u+x2e0GXB5RoZSqHyx5Sy9NlAEChKbL3IYqKilJISIjWr1/vWJeamqrt27erTZs2HqwMAACUNB49QpSWlqb4+HjH8uHDh7V7925VqlRJERERGj16tP7xj3+odu3aioqK0gsvvKCwsDD17NnTc0UDAIASx6OBaMeOHbr77rsdy1nn/gwYMEDz5s3TM888o/Pnz2vYsGFKTk5Wu3bttGbNGvn4+HiqZAAAUAJ5NBB17NhRxphct9tsNk2bNk3Tpk0rxKoAAIDVFNlziAAAAAoLgQgAAFgegQgAAFgegQgAAFgegQgAAFhekb1TNVDU7d+/P999uHPyU3dMyuqO11QQfTJJLICCRiACXJSRdlay2dS/f/989+WuyU/dPSmrOxTFcQKA3BCIABdlpqdJxuR7AlR3Tn7qrklZLx7aoZSvF+SrlixFcZwAIDcEIuAWFcUJUPNb05XTv7mxmj8VxXECgOtxUjUAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA8AhEAALA87lTtQe6Y9LIgJuMEAMBqCEQe4M5JLwEAQP4RiDzAXZNeSu6djBMAAKsiEHmQOya9LIjJOAEAsBpOqgYAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZHIAIAAJZX2tMFAFa3f//+ItEHPCcxMVFJSUlu6SswMFARERFu6QuwEgIR4CEZaWclm039+/f3dCnwoMTERNWtV1+XLl5wS38+vn6KO7CfUAS4iEAEeEhmeppkjCo/ME5lKofnq6+Lh3Yo5esFbqoMhSkpKUmXLl5wy/vgyunfdHrla0pKSiIQAS4iEAEeVqZyuOwhtfLVx5XTv7mpGniKO94HAG4dJ1UDAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLK9KBaMqUKbLZbE6PevXqebosAABQwhT5+xA1bNhQ69atcyyXLl3kSwYAAMVMkU8XpUuXVkhIiKfLAAAAJViRD0QHDx5UWFiYfHx81KZNG82YMeOGt6RPT09Xenq6Yzk1NbUwygRQTLhzItX09HTZ7fZ89cHEvEDRUKQDUevWrTVv3jzVrVtXx48f19SpU3XXXXdp3759KleuXI7PmTFjhqZOnVrIlQIoDtw9kapsXpLJdE9fADyqSAeirl27Ov7dpEkTtW7dWpGRkfr00081ZMiQHJ8zceJEjR071rGcmpqq8PD8TZgIoGRw50SqWRPq5rcvJuYFioYiHYiuV6FCBdWpU0fx8fG5trHb7fk+hA2gZHPnhLr57YuJeYGioUhfdn+9tLQ0JSQkKDQ01NOlAACAEqRIB6Knn35asbGxOnLkiL799lv16tVLpUqVUr9+/TxdGgAAKEGK9FdmR48eVb9+/XT69GkFBQWpXbt22rZtm4KCgjxdGgAAKEGKdCD6+OOPPV0CAACwgCL9lRkAAEBhIBABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLIxABAADLK+3pAgAgL/bv318k+gBQMhGIABRpGWlnJZtN/fv393QpAEowAhGAIi0zPU0yRpUfGKcylcPz1dfFQzuU8vUCN1UGoCQhEAEoFspUDpc9pFa++rhy+jc3VQOgpOGkagAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHncqRoAShh3TGIbGBioiIgIN1QDFA8EIgAoIdw5Ea6Pr5/iDuwnFMEyCEQAUEK4ayLcK6d/0+mVrykpKYlABMsgEAFACeOOiXABq+GkagAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHkEIgAAYHncqRoAkCN3TBIrFc2JYhMTE5WUlJTvftz52txVkySlp6fLbrfnu5+i+LMrKAQiAIATd04SKxW9iWITExNVt159Xbp4Id99ueu1ubMmSZLNSzKZ+e6mqP3sChKBCADgxF2TxEpFc6LYpKQkXbp4oUhNguuumiTp4qEdSvl6QZF6fcUBgQgAkKOSPklsUXx97qjpyunf3NaXlXBSNQAAsDwCEQAAsDwCEQAAsDwCEQAAsDwCEQAAsLxiEYjmzJmj6tWry8fHR61bt9Z3333n6ZIAAEAJUuQD0SeffKKxY8dq8uTJ+uGHH9S0aVPFxMTo1KlTni4NAACUEEU+EL3++usaOnSoBg0apAYNGujdd9+Vn5+f3nvvPU+XBgAASogiHYguX76snTt3Kjo62rHOy8tL0dHR2rp1qwcrAwAAJUmRvlN1UlKSMjIyFBwc7LQ+ODhYBw4cyPE56enpSk9PdyynpKRIki6fOpTverLu/pl+Il6Zly95vJ+SXpM7+6ImaiqqfZX4ms4clSTt3LlTaWlp+erLy8tLmZn5n58rLi5OkhvGyY2vzV01SW58H/z/X19aWppSU1PzVdOtyNqnMaZwdmiKsGPHjhlJ5ttvv3VaP378eNOqVascnzN58mQjiQcPHjx48OBRAh4JCQmFETlMkT5CFBgYqFKlSunkyZNO60+ePKmQkJAcnzNx4kSNHTvWsZycnKzIyEglJiYqICCgQOst6VJTUxUeHq7ffvtN5cuX93Q5xRbj6D6Mpfswlu7BOLpPSkqKIiIiVKlSpULZX5EORN7e3mrRooXWr1+vnj17SpIyMzO1fv16jRw5Msfn2O122e32bOsDAgJ4c7pJ+fLlGUs3YBzdh7F0H8bSPRhH9/HyKpzTnYt0IJKksWPHasCAAbr99tvVqlUrzZo1S+fPn9egQYM8XRoAACghinwgevjhh/XHH3/oxRdf1IkTJ9SsWTOtWbMm24nWAAAAt6rIByJJGjlyZK5fkd2M3W7X5MmTc/waDa5hLN2DcXQfxtJ9GEv3YBzdp7DH0mZMYV3PBgAAUDQV6RszAgAAFAYCEQAAsDwCEQAAsDwCEQAAsLwSHYjmzJmj6tWry8fHR61bt9Z3333n6ZKKnClTpshmszk96tWr59h+6dIljRgxQpUrV5a/v7/69OmT7c7hiYmJuv/+++Xn56cqVapo/Pjxunr1amG/lEK1efNmdevWTWFhYbLZbFq+fLnTdmOMXnzxRYWGhsrX11fR0dE6ePCgU5szZ87o0UcfVfny5VWhQgUNGTIk23xIe/fu1V133SUfHx+Fh4fr5ZdfLuiXVuhuNpYDBw7M9h7t0qWLUxvGUpoxY4ZatmypcuXKqUqVKurZs6djfqws7vo8b9q0Sbfddpvsdrtq1aqlefPmFfTLK1R5GcuOHTtme1/+7W9/c2pj9bGcO3eumjRp4rhJZZs2bbR69WrH9iL3fiyUCUI84OOPPzbe3t7mvffeMz/99JMZOnSoqVChgjl58qSnSytSJk+ebBo2bGiOHz/uePzxxx+O7X/7299MeHi4Wb9+vdmxY4e54447zJ133unYfvXqVdOoUSMTHR1tdu3aZb744gsTGBhoJk6c6ImXU2i++OILM2nSJLN06VIjySxbtsxp+8yZM01AQIBZvny52bNnj+nevbuJiooyFy9edLTp0qWLadq0qdm2bZv5+uuvTa1atUy/fv0c21NSUkxwcLB59NFHzb59+8xHH31kfH19zb/+9a/CepmF4mZjOWDAANOlSxen9+iZM2ec2jCWxsTExJj333/f7Nu3z+zevdvcd999JiIiwqSlpTnauOPzfOjQIePn52fGjh1rfv75ZzN79mxTqlQps2bNmkJ9vQUpL2PZoUMHM3ToUKf3ZUpKimM7Y2nM559/blatWmV++eUXExcXZ5577jlTpkwZs2/fPmNM0Xs/lthA1KpVKzNixAjHckZGhgkLCzMzZszwYFVFz+TJk03Tpk1z3JacnGzKlCljPvvsM8e6/fv3G0lm69atxpg//5h5eXmZEydOONrMnTvXlC9f3qSnpxdo7UXF9X/EMzMzTUhIiHnllVcc65KTk43dbjcfffSRMcaYn3/+2Ugy33//vaPN6tWrjc1mM8eOHTPGGPPOO++YihUrOo3jhAkTTN26dQv4FXlOboGoR48euT6HsczZqVOnjCQTGxtrjHHf5/mZZ54xDRs2dNrXww8/bGJiYgr6JXnM9WNpzJ+B6Kmnnsr1OYxlzipWrGj+85//FMn3Y4n8yuzy5cvauXOnoqOjHeu8vLwUHR2trVu3erCyoungwYMKCwtTjRo19OijjyoxMVGStHPnTl25csVpHOvVq6eIiAjHOG7dulWNGzd2unN4TEyMUlNT9dNPPxXuCykiDh8+rBMnTjiNW0BAgFq3bu00bhUqVNDtt9/uaBMdHS0vLy9t377d0aZ9+/by9vZ2tImJiVFcXJzOnj1bSK+maNi0aZOqVKmiunXravjw4Tp9+rRjG2OZs5SUFElyTIzprs/z1q1bnfrIalOSf7deP5ZZFi5cqMDAQDVq1EgTJ07UhQsXHNsYS2cZGRn6+OOPdf78ebVp06ZIvh+LxZ2qXZWUlKSMjIxs03sEBwfrwIEDHqqqaGrdurXmzZununXr6vjx45o6daruuusu7du3TydOnJC3t7cqVKjg9Jzg4GCdOHFCknTixIkcxzlrmxVlve6cxuXacatSpYrT9tKlS6tSpUpObaKiorL1kbWtYsWKBVJ/UdOlSxf17t1bUVFRSkhI0HPPPaeuXbtq69atKlWqFGOZg8zMTI0ePVpt27ZVo0aNJMltn+fc2qSmpurixYvy9fUtiJfkMTmNpSQ98sgjioyMVFhYmPbu3asJEyYoLi5OS5culcRYZvnxxx/Vpk0bXbp0Sf7+/lq2bJkaNGig3bt3F7n3Y4kMRMi7rl27Ov7dpEkTtW7dWpGRkfr0009LxIcRxV/fvn0d/27cuLGaNGmimjVratOmTerUqZMHKyu6RowYoX379umbb77xdCnFXm5jOWzYMMe/GzdurNDQUHXq1EkJCQmqWbNmYZdZZNWtW1e7d+9WSkqKFi9erAEDBig2NtbTZeWoRH5lFhgYqFKlSmU7W/3kyZMKCQnxUFXFQ4UKFVSnTh3Fx8crJCREly9fVnJyslOba8cxJCQkx3HO2mZFWa/7Ru+/kJAQnTp1ymn71atXdebMGcb2JmrUqKHAwEDFx8dLYiyvN3LkSK1cuVIbN25UtWrVHOvd9XnOrU358uVL3H+ichvLnLRu3VqSnN6XjKXk7e2tWrVqqUWLFpoxY4aaNm2qN998s0i+H0tkIPL29laLFi20fv16x7rMzEytX79ebdq08WBlRV9aWpoSEhIUGhqqFi1aqEyZMk7jGBcXp8TERMc4tmnTRj/++KPTH6S1a9eqfPnyatCgQaHXXxRERUUpJCTEadxSU1O1fft2p3FLTk7Wzp07HW02bNigzMxMxy/WNm3aaPPmzbpy5Yqjzdq1a1W3bt0S9xWPK44eParTp08rNDRUEmOZxRijkSNHatmyZdqwYUO2rwjd9Xlu06aNUx9ZbUrS79abjWVOdu/eLUlO70vGMrvMzEylp6cXzfej6+eIFw8ff/yxsdvtZt68eebnn382w4YNMxUqVHA6Wx3GjBs3zmzatMkcPnzYbNmyxURHR5vAwEBz6tQpY8yfl0VGRESYDRs2mB07dpg2bdqYNm3aOJ6fdVlk586dze7du82aNWtMUFBQib/s/ty5c2bXrl1m165dRpJ5/fXXza5du8yvv/5qjPnzsvsKFSqYFStWmL1795oePXrkeNl98+bNzfbt280333xjateu7XSpeHJysgkODjaPPfaY2bdvn/n444+Nn59fibpU3Jgbj+W5c+fM008/bbZu3WoOHz5s1q1bZ2677TZTu3Ztc+nSJUcfjKUxw4cPNwEBAWbTpk1Ol4JfuHDB0cYdn+esy5zHjx9v9u/fb+bMmVOiLhU35uZjGR8fb6ZNm2Z27NhhDh8+bFasWGFq1Khh2rdv7+iDsTTm2WefNbGxsebw4cNm79695tlnnzU2m8189dVXxpii934ssYHIGGNmz55tIiIijLe3t2nVqpXZtm2bp0sqch5++GETGhpqvL29TdWqVc3DDz9s4uPjHdsvXrxo/v73v5uKFSsaPz8/06tXL3P8+HGnPo4cOWK6du1qfH19TWBgoBk3bpy5cuVKYb+UQrVx40YjKdtjwIABxpg/L71/4YUXTHBwsLHb7aZTp04mLi7OqY/Tp0+bfv36GX9/f1O+fHkzaNAgc+7cOac2e/bsMe3atTN2u91UrVrVzJw5s7BeYqG50VheuHDBdO7c2QQFBZkyZcqYyMhIM3To0Gz/sWEsTY5jKMm8//77jjbu+jxv3LjRNGvWzHh7e5saNWo47aMkuNlYJiYmmvbt25tKlSoZu91uatWqZcaPH+90HyJjGMvBgwebyMhI4+3tbYKCgkynTp0cYciYovd+tBljjOvHlQAAAEqOEnkOEQAAgCsIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIRAAAwPIIREAxYLPZtHz58gLfT8eOHTV69Gi39Tdw4ED17NnTbf0VJ0eOHJHNZnNM6eBpVv5ZAHlBIAI87MSJE3ryySdVo0YN2e12hYeHq1u3btnm54F7bdq0STabLdvkksVdUQtiQHFR2tMFAFZ25MgRtW3bVhUqVNArr7yixo0b68qVK/ryyy81YsQIHThwwNMlFjnGGGVkZKh06aLx66uo1QPg1nCECPCgv//977LZbPruu+/Up08f1alTRw0bNtTYsWO1bds2p7ZJSUnq1auX/Pz8VLt2bX3++eeObfPmzVOFChWc2i9fvlw2m82xPGXKFDVr1kwffvihqlevroCAAPXt21fnzp3Ltb5Vq1YpICBACxcuzLXNTz/9pAceeEDly5dXuXLldNdddykhIcGpzauvvqrQ0FBVrlxZI0aMcJp1/sMPP9Ttt9+ucuXKKSQkRI888ojT7NZZR3JWr16tFi1ayG6365tvvlFCQoJ69Oih4OBg+fv7q2XLllq3bp3TftPT0zVhwgSFh4fLbrerVq1a+u9//6sjR47o7rvvliRVrFhRNptNAwcOlPTnbNwzZsxQVFSUfH191bRpUy1evPim9eTFvn371LVrV/n7+ys4OFiPPfaYkpKSHNs7duyoUaNG6ZlnnlGlSpUUEhKiKVOmOPVx4MABtWvXTj4+PmrQoIHWrVvn9JVq1szszZs3l81mU8eOHfP8swCsjEAEeMiZM2e0Zs0ajRgxQmXLls22/fqAM3XqVD300EPau3ev7rvvPj366KM6c+aMS/tMSEjQ8uXLtXLlSq1cuVKxsbGaOXNmjm0XLVqkfv36aeHChXr00UdzbHPs2DG1b99edrtdGzZs0M6dOzV48GBdvXrV0Wbjxo1KSEjQxo0bNX/+fM2bN0/z5s1zbL9y5YqmT5+uPXv2aPny5Tpy5IgjnFzr2Wef1cyZM7V//341adJEaWlpuu+++7R+/Xrt2rVLXbp0Ubdu3ZSYmOh4zuOPP66PPvpIb731lvbv369//etf8vf3V3h4uJYsWSJJiouL0/Hjx/Xmm29KkmbMmKEPPvhA7777rn766SeNGTNG/fv3V2xs7A3ruZnk5GTdc889at68uXbs2KE1a9bo5MmTeuihh5zazZ8/X2XLltX27dv18ssva9q0aVq7dq0kKSMjQz179pSfn5+2b9+u//f//p8mTZrk9PzvvvtOkrRu3TodP35cS5cuzfPPArC0W5oSFkC+bd++3UgyS5cuvWlbSeb55593LKelpRlJZvXq1cYYY95//30TEBDg9Jxly5aZaz/ikydPNn5+fiY1NdWxbvz48aZ169aO5Q4dOpinnnrKvP322yYgIMBs2rTphnVNnDjRREVFmcuXL+e4fcCAASYyMtJcvXrVse4vf/mLefjhh3Pt8/vvvzeSHLPVb9y40Ugyy5cvv2EtxhjTsGFDM3v2bGOMMXFxcUaSWbt2bY5ts/o9e/asY92lS5eMn5+f+fbbb53aDhkyxPTr18+leg4fPmwkmV27dhljjJk+fbrp3LmzU5vffvvNSDJxcXHGmD/Hv127dk5tWrZsaSZMmGCMMWb16tWmdOnSTjOCr1271kgyy5Yty3G/WW7lZwFYCV96Ax5ijHGp/bVHIcqWLavy5cs7fbWUF9WrV1e5cuUcy6Ghodn6WLx4sU6dOqUtW7aoZcuWN+xv9+7duuuuu1SmTJlc2zRs2FClSpVy2uePP/7oWN65c6emTJmiPXv26OzZs8rMzJQkJSYmqkGDBo52t99+u1O/aWlpmjJlilatWqXjx4/r6tWrunjxouMI0e7du1WqVCl16NDhhq/hWvHx8bpw4YLuvfdep/WXL19W8+bNndZdX8/N7NmzRxs3bpS/v3+2bQkJCapTp44kZTvadO3PKC4uTuHh4QoJCXFsb9WqVZ5ruNnPArAyAhHgIbVr15bNZsvzidPXhw6bzeYID15eXtkCVk7nhtyojyzNmzfXDz/8oPfee0+3336703lI1/P19c1X3efPn1dMTIxiYmK0cOFCBQUFKTExUTExMbp8+bLT867/WvHpp5/W2rVr9eqrr6pWrVry9fXVgw8+6HheXmq7XlpamqQ/z52qWrWq0za73X7DevLSd7du3fR///d/2baFhoY6/p2Xn9GtKsi+geKOQAR4SKVKlRQTE6M5c+Zo1KhR2f7AJicnZzuPKDdBQUE6d+6czp8/7+jnVi+7rlmzpl577TV17NhRpUqV0ttvv51r2yZNmmj+/Pm6cuXKDY8S5ebAgQM6ffq0Zs6cqfDwcEnSjh078vTcLVu2aODAgerVq5ekPwPHkSNHHNsbN26szMxMxcbGKjo6Otvzvb29Jf15Xk6WBg0ayG63KzEx0aUjS3lx2223acmSJapevfotX5FWt25d/fbbbzp58qSCg4MlSd9//71Tm5xeF4Cb46RqwIPmzJmjjIwMtWrVSkuWLNHBgwe1f/9+vfXWW2rTpk2e+2ndurX8/Pz03HPPKSEhQYsWLcrXybJ16tTRxo0btWTJkhveqHHkyJFKTU1V3759tWPHDh08eFAffvih4uLi8rSfiIgIeXt7a/bs2Tp06JA+//xzTZ8+PU/PrV27tpYuXardu3drz549euSRR5yOdlSvXl0DBgzQ4MGDtXz5ch0+fFibNm3Sp59+KkmKjIyUzWbTypUr9ccffygtLU3lypXT008/rTFjxmj+/PlKSEjQDz/8oNmzZ2v+/Pl5qis3I0aM0JkzZ9SvXz99//33SkhI0JdffqlBgwblObzce++9qlmzpgYMGKC9e/dqy5Ytev755yXJcSSvSpUq8vX1dZy0nZKSkq+6AasgEAEeVKNGDf3www+6++67NW7cODVq1Ej33nuv1q9fr7lz5+a5n0qVKmnBggX64osv1LhxY3300UfZLtd2Vd26dbVhwwZ99NFHGjduXI5tKleurA0bNigtLU0dOnRQixYt9O9//zvPR4uCgoI0b948ffbZZ2rQoIFmzpypV199NU/Pff3111WxYkXdeeed6tatm2JiYnTbbbc5tZk7d64efPBB/f3vf1e9evU0dOhQnT9/XpJUtWpVTZ06Vc8++6yCg4M1cuRISdL06dP1wgsvaMaMGapfv766dOmiVatWOS5nv1VhYWHasmWLMjIy1LlzZzVu3FijR49WhQoV5OWVt1/FpUqV0vLly5WWlqaWLVvqiSeecFxl5uPjI0kqXbq03nrrLf3rX/9SWFiYevToka+6AauwGVfP7AQAFBlbtmxRu3btFB8fr5o1a3q6HKDYIhABQDGybNky+fv7q3bt2oqPj9dTTz2lihUr5vnmkAByxknVAFCMnDt3ThMmTFBiYqICAwMVHR2t1157zdNlAcUeR4gAAIDlcVI1AACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwPAIRAACwvP8fkQYi6nx0lHIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHHCAYAAACiOWx7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPmklEQVR4nO3deVxU5f4H8M+wDaCyyDagLCoqLrhkSqilJonkhntczSWXe72QGWaF5V7hr65rmnbrKhaamvtVcwkBcxeU0kQSBEFjcVBAFBGZ5/dHL+Y6snhGBmaAz/v1Oq/bOec5z/meZ0A+98wzZ2RCCAEiIiIiqpKRvgsgIiIiqgsYmoiIiIgkYGgiIiIikoChiYiIiEgChiYiIiIiCRiaiIiIiCRgaCIiIiKSgKGJiIiISAKGJiIiIiIJGJqoQVi4cCFkMlmtnKtv377o27evej0mJgYymQw7duyolfNPmjQJHh4etXKu51VYWIipU6dCoVBAJpNh1qxZ1erPw8MDgwcP1k1xWoqIiIBMJkNcXJxezt+3b1907NhRL+d+Wm3+nlVHbf9OUv3B0ER1TtkfqbLF3NwcLi4u8Pf3x+rVq3Hv3j2dnOfPP//EwoULkZCQoJP+dMmQa5Pis88+Q0REBGbMmIHvv/8eb775pr5L0osrV65g4cKFSEtL03cp9dKWLVuwcuVKfZdB9YiJvgsgel6LFy9GixYtUFJSgqysLMTExGDWrFlYvnw59u3bh06dOqnbfvzxx/jwww+16v/PP//EokWL4OHhgS5dukg+7siRI1qd53lUVds333wDlUpV4zVUx7Fjx/DSSy9hwYIF+i5Fr65cuYJFixahb9++Bn93sC7asmULLl++XO07mURlGJqozgoICMCLL76oXg8LC8OxY8cwePBgDB06FImJibCwsAAAmJiYwMSkZn/cHzx4AEtLS5iZmdXoeZ7F1NRUr+eXIicnB+3bt9d3GUREWuHbc1SvvPrqq5g3bx5u3LiByMhI9faK5locPXoUvXv3ho2NDRo3boy2bdti7ty5AP6a89C9e3cAwOTJk9VvBUZERAD43zyS+Ph4vPLKK7C0tFQf+/ScpjKlpaWYO3cuFAoFGjVqhKFDhyIjI0OjjYeHByZNmlTu2Cf7fFZtFc1pun//PmbPng1XV1fI5XK0bdsW//rXvyCE0Ggnk8kQEhKCPXv2oGPHjpDL5ejQoQMOHTpU8YA/JScnB1OmTIGTkxPMzc3RuXNnbNq0Sb2/bC5JamoqDhw4oK79WW9PRUZGokePHrC0tIStrS1eeeWVCu/onThxAj169IC5uTlatmyJ7777TmN/ZXNuyt7yfbKOsnlSz+qzInfv3kWPHj3QvHlzJCUlVdgmIiICo0ePBgD069dPPRYxMTHqNl999RU6dOgAuVwOFxcXBAcHIy8v75nnP3LkCCwtLREUFITHjx8DAK5evYpRo0ahadOmMDc3x4svvoh9+/ZVOA4nT55EaGgoHBwc0KhRIwwfPhy3b99+5nkrExkZiW7dusHCwgJNmzbFG2+8Ue5nv+x36sqVK+jXrx8sLS3RrFkzfP755+X6u3HjBoYOHYpGjRrB0dER7777Lg4fPqwxfn379sWBAwdw48YN9dg+/XuhUqnw6aefonnz5jA3N0f//v2RnJys0ebatWsYOXIkFAoFzM3N0bx5c7zxxhvIz89/7vGguot3mqjeefPNNzF37lwcOXIE06ZNq7DN77//jsGDB6NTp05YvHgx5HI5kpOTcfLkSQBAu3btsHjxYsyfPx/Tp0/Hyy+/DADo2bOnuo/c3FwEBATgjTfewPjx4+Hk5FRlXZ9++ilkMhk++OAD5OTkYOXKlfDz80NCQoL6jpgUUmp7khACQ4cORXR0NKZMmYIuXbrg8OHDmDNnDm7duoUVK1ZotD9x4gR27dqFf/7zn2jSpAlWr16NkSNHIj09HXZ2dpXWVVRUhL59+yI5ORkhISFo0aIFfvzxR0yaNAl5eXl455130K5dO3z//fd499130bx5c8yePRsA4ODgUGm/ixYtwsKFC9GzZ08sXrwYZmZmOHv2LI4dO4YBAwao2yUnJ2PUqFGYMmUKJk6ciA0bNmDSpEno1q0bOnToIHl8n/Q8fSqVSrz22mu4c+cOYmNj0apVqwrbvfLKK5g5cyZWr16NuXPnol27dgCg/t+FCxdi0aJF8PPzw4wZM5CUlIR169bh/PnzOHnyZKV3FPfv349Ro0Zh7Nix2LBhA4yNjfH777+jV69eaNasGT788EM0atQI27dvR2BgIHbu3Inhw4dr9PH222/D1tYWCxYsQFpaGlauXImQkBBs27ZN6zH89NNPMW/ePIwZMwZTp07F7du38eWXX+KVV17BxYsXYWNjo2579+5dDBw4ECNGjMCYMWOwY8cOfPDBB/D29kZAQACAv/4PwKuvvorMzEy88847UCgU2LJlC6KjozXO+9FHHyE/Px83b95U/4w3btxYo83SpUthZGSE9957D/n5+fj8888xbtw4nD17FgDw6NEj+Pv7o7i4GG+//TYUCgVu3bqF/fv3Iy8vD9bW1lqPB9VxgqiO2bhxowAgzp8/X2kba2tr0bVrV/X6ggULxJM/7itWrBAAxO3btyvt4/z58wKA2LhxY7l9ffr0EQDE+vXrK9zXp08f9Xp0dLQAIJo1ayYKCgrU27dv3y4AiFWrVqm3ubu7i4kTJz6zz6pqmzhxonB3d1ev79mzRwAQn3zyiUa7UaNGCZlMJpKTk9XbAAgzMzONbb/++qsAIL788sty53rSypUrBQARGRmp3vbo0SPh6+srGjdurHHt7u7uYtCgQVX2J4QQ165dE0ZGRmL48OGitLRUY59KpdLoD4A4fvy4eltOTo6Qy+Vi9uzZ6m1P/xyUKfuZSk1N1brPJ38eMzMzRYcOHUTLli1FWlraM6/vxx9/FABEdHS0xvacnBxhZmYmBgwYoHHda9asEQDEhg0b1Nv69OkjOnToIIQQYufOncLU1FRMmzZN47j+/fsLb29v8fDhQ/U2lUolevbsKVq3bl3uWvz8/DTG99133xXGxsYiLy+vyut5enzT0tKEsbGx+PTTTzXaXbp0SZiYmGhsL/ud+u6779TbiouLhUKhECNHjlRvW7ZsmQAg9uzZo95WVFQkvLy8yo3loEGDNH4XypT9TrZr104UFxert69atUoAEJcuXRJCCHHx4kUBQPz4449VXjc1HHx7juqlxo0bV/kpurL/d7t3797nnjQtl8sxefJkye0nTJiAJk2aqNdHjRoFZ2dnHDx48LnOL9XBgwdhbGyMmTNnamyfPXs2hBD46aefNLb7+flp3B3p1KkTrKyscP369WeeR6FQICgoSL3N1NQUM2fORGFhIWJjY7Wufc+ePVCpVJg/fz6MjDT/uXr6bbb27dur77oBf929atu27TPrroo2fd68eRN9+vRBSUkJjh8/Dnd39+c+788//4xHjx5h1qxZGtc9bdo0WFlZ4cCBA+WO+eGHHzB27Fj8/e9/x9dff60+7s6dOzh27BjGjBmDe/fuQalUQqlUIjc3F/7+/rh27Rpu3bql0df06dM1xvfll19GaWkpbty4odV17Nq1CyqVCmPGjFGfV6lUQqFQoHXr1uXuDjVu3Bjjx49Xr5uZmaFHjx4a433o0CE0a9YMQ4cOVW8zNzev9K5yVSZPnqwxB7HstS47X9mdpMOHD+PBgwda90/1D0MT1UuFhYUaAeVpY8eORa9evTB16lQ4OTnhjTfewPbt27UKUM2aNdNq0nfr1q011mUyGTw9PWv84+Y3btyAi4tLufEoexvo6T+Ebm5u5fqwtbXF3bt3n3me1q1blws3lZ1HipSUFBgZGUmaNP68deuqzzfffBM5OTmIjY1Fs2bNnvucwP/Gqm3bthrbzczM0LJly3JjmZqaivHjx2PkyJH48ssvNQJPcnIyhBCYN28eHBwcNJayTy/m5ORo9Pf0ddva2gKA1mN57do1CCHQunXrcudOTEwsd97mzZuXC8NPj/eNGzfQqlWrcu08PT21qg149nW2aNECoaGh+Pbbb2Fvbw9/f3+sXbuW85kaMM5ponrn5s2byM/Pr/IfUQsLCxw/fhzR0dE4cOAADh06hG3btuHVV1/FkSNHYGxs/MzzaDMPSarKHgxYWloqqSZdqOw84qlJ44ZGSt1Vje/z9llmxIgR+O6777Bq1SqEh4c/q1ydcnZ2Vt+1jIuL0/hUadn/EXjvvffg7+9f4fFP/67o6mdApVJBJpPhp59+qrDPp+cY1fbPnpTzLVu2DJMmTcLevXtx5MgRzJw5E+Hh4Thz5gyaN29eI3WR4WJoonrn+++/B4BK/0CUMTIyQv/+/dG/f38sX74cn332GT766CNER0fDz89P5082vnbtmsa6EALJyckaz5OytbWt8NNRN27cQMuWLdXr2tTm7u6On3/+Gffu3dO423T16lX1fl1wd3fHb7/9BpVKpXG3qTrnadWqFVQqFa5cuaLVs7IqU3YnIS8vT2MC8vPcBXva22+/DU9PT8yfPx/W1taSngtW2etYNlZJSUkar/ujR4+QmpoKPz8/jfbm5ubYv38/Xn31VQwcOBCxsbHqieplx5uampY7rqa1atUKQgi0aNECbdq00Umf7u7uuHLlCoQQ5e6oPU1Xv8Pe3t7w9vbGxx9/jFOnTqFXr15Yv349PvnkE530T3UH356jeuXYsWNYsmQJWrRogXHjxlXa7s6dO+W2lf1RLi4uBgA0atQIACR9xFuK7777TmOe1Y4dO5CZman+VBDw1x+ZM2fO4NGjR+pt+/fvL/fxbG1qe/3111FaWoo1a9ZobF+xYgVkMpnG+avj9ddfR1ZWlsYnrB4/fowvv/wSjRs3Rp8+fbTuMzAwEEZGRli8eHG5t06f5+5D2Vyt48ePq7fdv39f47EI1TFv3jy89957CAsLw7p1657ZvrLX0c/PD2ZmZli9erXGdf7nP/9Bfn4+Bg0aVK4va2trHD58GI6OjnjttdeQkpICAHB0dETfvn3x9ddfIzMzs9xx1XmUwLOMGDECxsbGWLRoUbnXSwiB3Nxcrfv09/fHrVu3NB6X8PDhQ3zzzTfl2jZq1Khab6UVFBSoH9lQxtvbG0ZGRup/J6hh4Z0mqrN++uknXL16FY8fP0Z2djaOHTuGo0ePwt3dHfv27YO5uXmlxy5evBjHjx/HoEGD4O7ujpycHHz11Vdo3rw5evfuDeCvP7A2NjZYv349mjRpgkaNGsHHxwctWrR4rnqbNm2K3r17Y/LkycjOzsbKlSvh6empMYF16tSp2LFjBwYOHIgxY8YgJSUFkZGR5T62rk1tQ4YMQb9+/fDRRx8hLS0NnTt3xpEjR7B3717MmjWr0o/Ea2v69On4+uuvMWnSJMTHx8PDwwM7duzAyZMnsXLlyirnmFXG09MTH330EZYsWYKXX34ZI0aMgFwux/nz5+Hi4qL122ADBgyAm5sbpkyZgjlz5sDY2BgbNmyAg4MD0tPTta6vIl988QXy8/MRHByMJk2aaExsflqXLl1gbGyM//u//0N+fj7kcjleffVVODo6IiwsDIsWLcLAgQMxdOhQJCUl4auvvkL37t0r7dPe3l79/DE/Pz+cOHECzZo1w9q1a9G7d294e3tj2rRpaNmyJbKzs3H69GncvHkTv/76q06u/WmtWrXCJ598grCwMKSlpSEwMBBNmjRBamoqdu/ejenTp+O9997Tqs+///3vWLNmDYKCgvDOO+/A2dkZmzdvVv++P3l3qVu3bti2bRtCQ0PRvXt3NG7cGEOGDJF8rmPHjiEkJASjR49GmzZt8PjxY3z//fcwNjbGyJEjtaqb6ona/8AeUfWUfSy6bDEzMxMKhUK89tprYtWqVRofbS/z9Eeho6KixLBhw4SLi4swMzMTLi4uIigoSPzxxx8ax+3du1e0b99emJiYaHzE/8mPeT+tskcO/PDDDyIsLEw4OjoKCwsLMWjQIHHjxo1yxy9btkw0a9ZMyOVy0atXLxEXF1euz6pqe/qRA0IIce/ePfHuu+8KFxcXYWpqKlq3bi2++OILjY+VC/HXIweCg4PL1VTZoxCelp2dLSZPnizs7e2FmZmZ8Pb2rvCxCFIfOVBmw4YNomvXrkIulwtbW1vRp08fcfTo0Wf2V9G4xcfHCx8fH2FmZibc3NzE8uXLK33kgJQ+K3oERmlpqQgKChImJiYaH42vyDfffCNatmwpjI2Ny31kfs2aNcLLy0uYmpoKJycnMWPGDHH37t1y9Tz9s5icnCycnZ1Fu3bt1I/VSElJERMmTBAKhUKYmpqKZs2aicGDB4sdO3ZUeS1C/O9n+OlHIzytskc67Ny5U/Tu3Vs0atRINGrUSHh5eYng4GCRlJRU5XUIUfHP8/Xr18WgQYOEhYWFcHBwELNnzxY7d+4UAMSZM2fU7QoLC8Xf/vY3YWNjIwCo+ym7nqcfJZCamqrxu3T9+nXx1ltviVatWglzc3PRtGlT0a9fP/Hzzz9XOQ5Uf8mEMPDZnURERM+wcuVKvPvuu7h582a1P71IVBmGJiIiqlOKioo0Pr368OFDdO3aFaWlpfjjjz/0WBnVd5zTREREdcqIESPg5uaGLl26ID8/H5GRkbh69So2b96s79KonmNoIiKiOsXf3x/ffvstNm/ejNLSUrRv3x5bt27F2LFj9V0a1XN6feRAeHg4unfvjiZNmsDR0RGBgYHlvhH84cOHCA4Ohp2dHRo3boyRI0ciOzu7yn6FEJg/fz6cnZ1hYWEBPz+/cs/IISKiumnWrFm4fPkyCgsLUVRUhPj4eAYmqhV6DU2xsbEIDg7GmTNncPToUZSUlGDAgAG4f/++us27776L//73v/jxxx8RGxuLP//8EyNGjKiy388//xyrV6/G+vXrcfbsWTRq1Aj+/v54+PBhTV8SERER1VMGNRH89u3bcHR0RGxsLF555RXk5+fDwcEBW7ZswahRowD89XThdu3a4fTp03jppZfK9SGEgIuLC2bPnq1+/kd+fj6cnJwQERGBN954o1aviYiIiOoHg5rTVPbk1qZNmwIA4uPjUVJSovHofy8vL7i5uVUamlJTU5GVlaVxjLW1NXx8fHD69OkKQ1NxcbHG011VKhXu3LkDOzs7nX+VBhEREdUMIQTu3bsHFxeXcl8ergsGE5pUKhVmzZqFXr16oWPHjgCArKwsmJmZaXxHFAA4OTkhKyurwn7Ktjs5OUk+Jjw8HIsWLarmFRAREZEhyMjIqJEvVDaY0BQcHIzLly/jxIkTtX7usLAwhIaGqtfz8/Ph5uaGjIwMWFlZ6eQcCQkJ6NOnD2z9Q2DatHovZMmdm7h7eA1iY2N18iWmRERE9UFBQQFcXV2f62ubpDCI0BQSEoL9+/fj+PHjGslQoVDg0aNH5b6RPDs7GwqFosK+yrZnZ2fD2dlZ45jKAoZcLodcLi+33crKSmehqXHjxn+dS+EJucKzWn0ZmZmr+9RVfURERPVFTU2t0eun54QQCAkJwe7du3Hs2LFyXzbarVs3mJqaIioqSr0tKSkJ6enp8PX1rbDPFi1aQKFQaBxTUFCAs2fPVnoMERER0bPoNTQFBwcjMjISW7ZsQZMmTZCVlYWsrCwUFRUB+GsC95QpUxAaGoro6GjEx8dj8uTJ8PX11ZgE7uXlhd27dwP4K13OmjULn3zyCfbt24dLly5hwoQJcHFxQWBgoD4uk4iIiOoBvb49t27dOgBA3759NbZv3LgRkyZNAgCsWLECRkZGGDlyJIqLi+Hv74+vvvpKo31SUpL6k3cA8P777+P+/fuYPn068vLy0Lt3bxw6dAjm5uY1ej1ERERUf+k1NEl5RJS5uTnWrl2LtWvXSu5HJpNh8eLFWLx4cbVrJCIiIgL0/PYcERERUV3B0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEev3uOSKp0tPToVQqddKXvb093NzcdNIXERE1HAxNZPDS09PR1qsdHhY90El/5haWSLqayOBERERaYWgig6dUKvGw6AHsBs+GqZ1rtfoqyc1A7v5lUCqVDE1ERKQVhiaqM0ztXCFXeOq7DCIiaqA4EZyIiIhIAoYmIiIiIgkYmoiIiIgkYGgiIiIikoChiYiIiEgChiYiIiIiCRiaiIiIiCRgaCIiIiKSgKGJiIiISAKGJiIiIiIJGJqIiIiIJGBoIiIiIpKAoYmIiIhIAoYmIiIiIgkYmoiIiIgkYGgiIiIikoChiYiIiEgChiYiIiIiCRiaiIiIiCRgaCIiIiKSQK+h6fjx4xgyZAhcXFwgk8mwZ88ejf0ymazC5Ysvvqi0z4ULF5Zr7+XlVcNXQkRERPWdXkPT/fv30blzZ6xdu7bC/ZmZmRrLhg0bIJPJMHLkyCr77dChg8ZxJ06cqInyiYiIqAEx0efJAwICEBAQUOl+hUKhsb53717069cPLVu2rLJfExOTcscSERERVUedmdOUnZ2NAwcOYMqUKc9se+3aNbi4uKBly5YYN24c0tPTq2xfXFyMgoICjYWIiIjoSXUmNG3atAlNmjTBiBEjqmzn4+ODiIgIHDp0COvWrUNqaipefvll3Lt3r9JjwsPDYW1trV5cXV11XT4RERHVcXUmNG3YsAHjxo2Dubl5le0CAgIwevRodOrUCf7+/jh48CDy8vKwffv2So8JCwtDfn6+esnIyNB1+URERFTH6XVOk1S//PILkpKSsG3bNq2PtbGxQZs2bZCcnFxpG7lcDrlcXp0SiYiIqJ6rE3ea/vOf/6Bbt27o3Lmz1scWFhYiJSUFzs7ONVAZERERNRR6DU2FhYVISEhAQkICACA1NRUJCQkaE7cLCgrw448/YurUqRX20b9/f6xZs0a9/t577yE2NhZpaWk4deoUhg8fDmNjYwQFBdXotRAREVH9pte35+Li4tCvXz/1emhoKABg4sSJiIiIAABs3boVQohKQ09KSgqUSqV6/ebNmwgKCkJubi4cHBzQu3dvnDlzBg4ODjV3IURERFTv6TU09e3bF0KIKttMnz4d06dPr3R/WlqaxvrWrVt1URoRERGRhjoxp4mIiIhI3xiaiIiIiCSoE48cIDJk6enpGvPqqqu4uFinj8Cwt7eHm5ubzvojImqoGJqIqiE9PR1tvdrhYdED3XUqMwKESmfdmVtYIulqIoMTEVE1MTQRVYNSqcTDogewGzwbpnbV//qdoutxyP8lUmf9leRmIHf/MiiVSoYmIqJqYmgi0gFTO1fIFZ7V7qckN0On/RERke5wIjgRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBKY6LsAIn1ITEw0qH6IiMjwMTRRg1JaeBeQyTB+/Hh9l0JERHUMQxM1KKriQkAI2A2eDVM712r3V3Q9Dvm/ROqgMiIiMnQMTdQgmdq5Qq7wrHY/JbkZOqiGiIjqAk4EJyIiIpKAoYmIiIhIAoYmIiIiIgkYmoiIiIgkYGgiIiIikoChiYiIiEgChiYiIiIiCRiaiIiIiCRgaCIiIiKSgKGJiIiISAKGJiIiIiIJ9Bqajh8/jiFDhsDFxQUymQx79uzR2D9p0iTIZDKNZeDAgc/sd+3atfDw8IC5uTl8fHxw7ty5GroCIiIiaij0Gpru37+Pzp07Y+3atZW2GThwIDIzM9XLDz/8UGWf27ZtQ2hoKBYsWIALFy6gc+fO8Pf3R05Ojq7LJyIiogbERJ8nDwgIQEBAQJVt5HI5FAqF5D6XL1+OadOmYfLkyQCA9evX48CBA9iwYQM+/PDDatVLREREDZfBz2mKiYmBo6Mj2rZtixkzZiA3N7fSto8ePUJ8fDz8/PzU24yMjODn54fTp0/XRrlERERUT+n1TtOzDBw4ECNGjECLFi2QkpKCuXPnIiAgAKdPn4axsXG59kqlEqWlpXByctLY7uTkhKtXr1Z6nuLiYhQXF6vXCwoKAAAZGRka26sjMTFRJ/0QERGRfhh0aHrjjTfU/+3t7Y1OnTqhVatWiImJQf/+/XV2nvDwcCxatKjc9m4vdkfxwyKdnYeIiIjqLoMOTU9r2bIl7O3tkZycXGFosre3h7GxMbKzszW2Z2dnVzkvKiwsDKGhoer1goICuLq6ovhhEewGz4apnWu1ay+6Hof8XyKr3Q8RERHpR50KTTdv3kRubi6cnZ0r3G9mZoZu3bohKioKgYGBAACVSoWoqCiEhIRU2q9cLodcLq9wn6mdK+QKz2rXXpKbUe0+iIiISH/0OhG8sLAQCQkJSEhIAACkpqYiISEB6enpKCwsxJw5c3DmzBmkpaUhKioKw4YNg6enJ/z9/dV99O/fH2vWrFGvh4aG4ptvvsGmTZuQmJiIGTNm4P79++pP0xERERE9D73eaYqLi0O/fv3U62VvkU2cOBHr1q3Db7/9hk2bNiEvLw8uLi4YMGAAlixZonFXKCUlBUqlUr0+duxY3L59G/Pnz0dWVha6dOmCQ4cOlZscTkRERKQNvYamvn37QghR6f7Dhw8/s4+0tLRy20JCQqp8O46IiIhIWwb/nCYiIiIiQ8DQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJYKLvAuj5JSYm6qyv4uJiyOVynfVnb28PNzc3nfVHRESkbwxNdVBp4V1AJsP48eN116nMCBAqnXVnbmGJpKuJDE5ERFRvMDTVQariQkAI2A2eDVM712r3V3Q9Dvm/ROqsv5LcDOTuXwalUsnQRERE9QZDUx1maucKucKz2v2U5GbotD8iIqL6iBPBiYiIiCRgaCIiIiKSQK+h6fjx4xgyZAhcXFwgk8mwZ88e9b6SkhJ88MEH8Pb2RqNGjeDi4oIJEybgzz//rLLPhQsXQiaTaSxeXl41fCVERERU3+k1NN2/fx+dO3fG2rVry+178OABLly4gHnz5uHChQvYtWsXkpKSMHTo0Gf226FDB2RmZqqXEydO1ET5RERE1IDodSJ4QEAAAgICKtxnbW2No0ePamxbs2YNevTogfT09Co/lWViYgKFQqHTWomIiKhhq1NzmvLz8yGTyWBjY1Nlu2vXrsHFxQUtW7bEuHHjkJ6eXjsFEhERUb1VZx458PDhQ3zwwQcICgqClZVVpe18fHwQERGBtm3bIjMzE4sWLcLLL7+My5cvo0mTJhUeU1xcjOLiYvV6QUGBzusnIiKiuq1OhKaSkhKMGTMGQgisW7euyrZPvt3XqVMn+Pj4wN3dHdu3b8eUKVMqPCY8PByLFi3Sac1ERERUvxj823NlgenGjRs4evRolXeZKmJjY4M2bdogOTm50jZhYWHIz89XLxkZGdUtm4iIiOoZrUPTd999p/FWVplHjx7hu+++00lRZcoC07Vr1/Dzzz/Dzs5O6z4KCwuRkpICZ2fnStvI5XJYWVlpLERERERP0jo0TZ48Gfn5+eW237t3D5MnT9aqr8LCQiQkJCAhIQEAkJqaioSEBKSnp6OkpASjRo1CXFwcNm/ejNLSUmRlZSErKwuPHj1S99G/f3+sWbNGvf7ee+8hNjYWaWlpOHXqFIYPHw5jY2MEBQVpe6lEREREalrPaRJCQCaTldt+8+ZNWFtba9VXXFwc+vXrp14PDQ0FAEycOBELFy7Evn37AABdunTROC46Ohp9+/YFAKSkpECpVGrUERQUhNzcXDg4OKB37944c+YMHBwctKqNiIiI6EmSQ1PXrl3VT9ju378/TEz+d2hpaSlSU1MxcOBArU7et29fCCEq3V/VvjJpaWka61u3btWqBiIiIiIpJIemwMBAAEBCQgL8/f3RuHFj9T4zMzN4eHhg5MiROi+QiIiIyBBIDk0LFiwAAHh4eGDs2LEwNzevsaKIiIiIDI3Wc5omTpwI4K9Py+Xk5EClUmnsr+rrTYiIiIjqKq1D07Vr1/DWW2/h1KlTGtvLJoiXlpbqrDgiIiIiQ6F1aJo0aRJMTEywf/9+ODs7V/hJOiIiIqL6RuvQlJCQgPj4eHh5edVEPUREREQGSeuHW7Zv317juUhEREREDYHWoen//u//8P777yMmJga5ubkoKCjQWIiIiIjqI63fnvPz8wPw19eXPIkTwYmIiKg+0zo0RUdH10QdRERERAZN69DUp0+fmqiDiIiIyKBpHZqOHz9e5f5XXnnluYshIiIiMlRah6a+ffuW2/bks5o4p4mIiIjqI60/PXf37l2NJScnB4cOHUL37t1x5MiRmqiRiIiISO+0vtNkbW1dbttrr70GMzMzhIaGIj4+XieFERERERkSre80VcbJyQlJSUm66o6IiIjIoGh9p+m3337TWBdCIDMzE0uXLkWXLl10VRcRERGRQdE6NHXp0gUymQxCCI3tL730EjZs2KCzwoiIiIgMidahKTU1VWPdyMgIDg4OMDc311lRRERERIZG69Dk7u5eE3UQERERGTStQxMAxMbG4l//+hcSExMBAO3bt8ecOXPw8ssv67Q4qtvKfj4MpR8iIqLq0Do0RUZGYvLkyRgxYgRmzpwJADh58iT69++PiIgI/O1vf9N5kVS3lBbeBWQyjB8/Xt+lEBER6YzWoenTTz/F559/jnfffVe9bebMmVi+fDmWLFnC0ERQFRcCQsBu8GyY2rlWu7+i63HI/yVSB5URERE9P61D0/Xr1zFkyJBy24cOHYq5c+fqpCiqH0ztXCFXeFa7n5LcDB1UQ0REVD1aP9zS1dUVUVFR5bb//PPPcHWt/l0FIiIiIkOk9Z2m2bNnY+bMmUhISEDPnj0B/DWnKSIiAqtWrdJ5gURERESGQOvQNGPGDCgUCixbtgzbt28HALRr1w7btm3DsGHDdF4gERERkSF4rkcODB8+HMOHD9d1LUREREQGS/Kcprt37+LLL79EQUFBuX35+fmV7iMiIiKqDySHpjVr1uD48eOwsrIqt8/a2hq//PILvvzyS50WR0RERGQoJIemnTt34h//+Eel+//+979jx44dOimKiIiIyNBIDk0pKSlo3bp1pftbt26NlJQUnRRFREREZGgkhyZjY2P8+eefle7/888/YWSk9WOfiIiIiOoEySmna9eu2LNnT6X7d+/eja5du+qiJiIiIiKDI/mRAyEhIXjjjTfQvHlzzJgxA8bGxgCA0tJSfPXVV1ixYgW2bNlSY4USERER6ZPk0DRy5Ei8//77mDlzJj766CO0bNkSwF/fRVdYWIg5c+Zg1KhRNVYoERERkT5pNQnp008/xZkzZzBp0iS4uLjA2dkZkydPxunTp7F06VKtT378+HEMGTIELi4ukMlk5d7+E0Jg/vz5cHZ2hoWFBfz8/HDt2rVn9rt27Vp4eHjA3NwcPj4+OHfunNa1ERERET1J6yeC9+jRAz169NDJye/fv4/OnTvjrbfewogRI8rt//zzz7F69Wps2rQJLVq0wLx58+Dv748rV67A3Ny8wj63bduG0NBQrF+/Hj4+Pli5ciX8/f2RlJQER0dHndRNREREDY9eP+4WEBCATz75pMKvZBFCYOXKlfj4448xbNgwdOrUCd999x3+/PPPKiekL1++HNOmTcPkyZPRvn17rF+/HpaWltiwYUMNXgkRERHVdwb7jIDU1FRkZWXBz89Pvc3a2ho+Pj44ffp0hcc8evQI8fHxGscYGRnBz8+v0mMAoLi4GAUFBRoLERER0ZMMNjRlZWUBAJycnDS2Ozk5qfc9TalUorS0VKtjACA8PBzW1tbqxdXVtZrVExERUX1jsKGpNoWFhSE/P1+9ZGRk6LskIiIiMjBah6Yffvih0n1z5sypVjFPUigUAIDs7GyN7dnZ2ep9T7O3t4exsbFWxwCAXC6HlZWVxkJERET0JK1D04wZM/DTTz+V2/7uu+8iMjJSJ0UBQIsWLaBQKBAVFaXeVlBQgLNnz8LX17fCY8zMzNCtWzeNY1QqFaKioio9hoiIiEgKrUPT5s2bERQUhBMnTqi3vf3229i+fTuio6O16quwsBAJCQlISEgA8Nfk74SEBKSnp0Mmk2HWrFn45JNPsG/fPly6dAkTJkyAi4sLAgMD1X30798fa9asUa+Hhobim2++waZNm5CYmIgZM2bg/v37mDx5sraXSkRERKSm9XOaBg0ahK+++gpDhw7F0aNH8Z///Ad79+5FdHQ02rRpo1VfcXFx6Nevn3o9NDQUADBx4kRERETg/fffx/379zF9+nTk5eWhd+/eOHTokMYzmlJSUqBUKtXrY8eOxe3btzF//nxkZWWhS5cuOHToULnJ4URERETa0Do0AcDf/vY35OXloVevXnBwcEBsbCw8PT217qdv374QQlS6XyaTYfHixVi8eHGlbdLS0sptCwkJQUhIiNb1EBEREVVGUmgquwP0NAcHB7zwwgv46quv1NuWL1+um8qIiIiIDIik0HTx4sUKt3t6eqKgoEC9XyaT6a4yIiIiIgMiKTRpO8GbiIiIqL7hwy2JiIiIJNB6Ivj9+/exdOlSREVFIScnByqVSmP/9evXdVYcERERkaHQOjRNnToVsbGxePPNN+Hs7Mx5TERERNQgaB2afvrpJxw4cAC9evWqiXqIiIiIDJLWc5psbW3RtGnTmqiFiIiIyGBpHZqWLFmC+fPn48GDBzVRDxEREZFB0vrtuWXLliElJQVOTk7w8PCAqampxv4LFy7orDgiIiIiQ6F1aHryy3KJiOqz9PR0je+2rC57e3u4ubnprD8iql1ah6YFCxbURB1ERAYlPT0dbb3a4WGR7qYimFtYIulqIoMTUR31XF/YS0RU3ymVSjwsegC7wbNhauda7f5KcjOQu38ZlEolQxNRHaV1aDIyMqry2UylpaXVKoiIyJCY2rlCrvDUdxlEZAC0Dk27d+/WWC8pKcHFixexadMmLFq0SGeFERERERkSrUPTsGHDym0bNWoUOnTogG3btmHKlCk6KYyIiIjIkOjsC3tfeuklREVF6ao7IiIiIoOik9BUVFSE1atXo1mzZrrojoiIiMjgaP32nK2trcZEcCEE7t27B0tLS0RGRuq0OCIiIiJDoXVoWrlypca6kZERHBwc4OPjA1tbW13VRURERGRQtA5NEydOrIk6iIiIiAzacz3cMi8vD+fOnUNOTg5UKpXGvgkTJuikMCIiIiJDonVo+u9//4tx48ahsLAQVlZWGvObZDIZQxMRERHVS1p/em727Nl46623UFhYiLy8PNy9e1e93LlzpyZqJCIiItI7rUPTrVu3MHPm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DwBo2rRple0KCwvh7u4OV1dXDBs2DL///nttlEdERET1WJ0JTSqVCrNmzUKvXr3QsWPHStu1bdsWGzZswN69exEZGQmVSoWePXvi5s2blR5TXFyMgoICjYWIiIjoSQb99tyTgoODcfnyZZw4caLKdr6+vvD19VWv9+zZE+3atcPXX3+NJUuWVHhMeHg4Fi1apNN6iYiIqH6pE3eaQkJCsH//fkRHR6N58+ZaHWtqaoquXbsiOTm50jZhYWHIz89XLxkZGdUtmYiIiOoZg77TJITA22+/jd27dyMmJgYtWrTQuo/S0lJcunQJr7/+eqVt5HI55HJ5dUolIiKies6gQ1NwcDC2bNmCvXv3okmTJsjKygIAWFtbw8LCAgAwYcIENGvWDOHh4QCAxYsX46WXXoKnpyfy8vLwxRdf4MaNG5g6dareroOIiIjqPoMOTevWrQMA9O3bV2P7xo0bMWnSJAB/fVu1kdH/3mW8e/cupk2bhqysLNja2qJbt244deoU2rdvX1tlExERUT1k0KFJCPHMNjExMRrrK1aswIoVK2qoIiIiImqo6sREcCIiIiJ9Y2giIiIiksCg354jIqLak5iYaFD9EBkahiYiogautPAuIJNh/Pjx+i6FyKAxNBERNXCq4kJACNgNng1TO9dq91d0PQ75v0TqoDIiw8LQREREAABTO1fIFZ7V7qckl9+qQPUTJ4ITERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCSBib4LICIikiIxMdGg+qmpPu3t7eHm5qaz/tLT06FUKnXSV02MXV3C0ERERAattPAuIJNh/Pjx+i6lnJqozdzCEklXE3USnNLT09HWqx0eFj3QQWXE0ERERAZNVVwICAG7wbNhauda7f6Krsch/5dIHVSm+9pKcjOQu38ZlEqlTkKTUqnEw6IHBjl2dRFDExER1Qmmdq6QKzyr3U9JboYOqtGkq9pqiiGPXV3CieBEREREEjA0EREREUnA0EREREQkAUMTERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJEGdCE1r166Fh4cHzM3N4ePj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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "chunk_content = [chunk.page_content for chunk in recursive_text_splitter_chunks]\n",
    "\n",
    "plot_chunk_histogram(\n",
    "    chunks=chunk_content,\n",
    "    length_fn=len,\n",
    "    title=\"Distribution of chunk character lengths\",\n",
    "    xlabel=\"Chunk character length\")\n",
    "plot_chunk_histogram(\n",
    "    chunks=chunk_content,\n",
    "    length_fn=get_token_length,\n",
    "    title=\"Distribution of chunk token lengths\",\n",
    "    xlabel=\"Chunk token length\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Embed Recursive text splitter chunks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "recursive_text_splitter_embeddings = azure_openai_client.embeddings.create(input=chunk_content, model=azure_openai_embedding_deployment_id)\n",
    "recursive_text_splitter_embeddings = [result.embedding for result in recursive_text_splitter_embeddings.data]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Upload chunks to search index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "recursive_search_client = search_index_client.get_search_client(recursivetextsplitter_searchindex)\n",
    "\n",
    "docs = [\n",
    "    {\n",
    "        \"parent_id\": \"0\",\n",
    "        \"chunk_id\": f\"earth-at-night-508-pdf_0_0_{i}\",\n",
    "        \"chunk\": chunk.page_content,\n",
    "        \"title\": \"earth_at_night_508.pdf\",\n",
    "        \"vector\": recursive_text_splitter_embeddings[i]\n",
    "    }\n",
    "    for i, chunk in enumerate(recursive_text_splitter_chunks)\n",
    "]\n",
    "\n",
    "recursive_search_client.upload_documents(docs)\n",
    "\n",
    "print(\"Uploaded chunks and embeddings for recursive text splitter\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
